package com.yunxiangyue

import android.content.ContentValues
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.view.ContextMenu
import android.view.MenuItem
import android.view.View
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.yunxiangyue.app.R
//import cn.edu.sicnu.lgy.finalwork.info_user.Table
//import cn.edu.sicnu.lgy.finalwork.info_user.userName
//import cn.edu.sicnu.lgy.finalwork.info_user.user_info


class Com(var bitmap:Int,var name:String,var date:String,var comments:String){}
class Comm : AppCompatActivity(), View.OnClickListener {

    var aixinCount=0
    lateinit var adapter: com.yunxiangyue.comment_adapter
    companion object {
        lateinit var commentDB: com.yunxiangyue.comment_db
//        lateinit var db: SQLiteDatabase
    }

    private val commentList= ArrayList<com.yunxiangyue.Com>()
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_com)
        val actionBar=supportActionBar
        actionBar?.hide()

//        //        执行删除该表中的所有数据
        com.yunxiangyue.Comm.Companion.commentDB =
            com.yunxiangyue.comment_db(this, com.yunxiangyue.dbName2, 2)
        com.yunxiangyue.Comm.Companion.commentDB.writableDatabase
        com.yunxiangyue.Comm.Companion.commentDB.readableDatabase
//        commentDB.writableDatabase.execSQL("delete from $table")

//        commentDB.writableDatabase.execSQL("drop table $table")
//        commentDB.writableDatabase.execSQL("drop table $table")

////        获取该表中的所有数据将其添加到commentList中用于更改布局
       if(com.yunxiangyue.tab !=null) {
           var cursor = com.yunxiangyue.Comm.Companion.commentDB.readableDatabase.query(com.yunxiangyue.tab, null, null, null, null, null, null)
           cursor.apply {
               while (moveToNext()) {
                   var name = getString(getColumnIndexOrThrow("name"))
                   var date = getString(getColumnIndexOrThrow("date"))
                   var comment = getString(getColumnIndexOrThrow("comment"))
                   commentList.add(0, com.yunxiangyue.Com(R.drawable.x8, name, date, comment))
               }
               close()
           }
       }



//
//
//
        initCommentList()
        val layoutManager= LinearLayoutManager(this)
        val comment_list = findViewById<RecyclerView>(R.id.comment_list)
        comment_list.layoutManager=layoutManager
        adapter= com.yunxiangyue.comment_adapter(commentList)
        comment_list.adapter=adapter

        registerForContextMenu(comment_list)
//
//
//
//        fanhui.setOnClickListener(this)
//        sends.setOnClickListener(this)
//
        var viewList= mutableListOf<TextView>()
        viewList.add(findViewById(R.id.tuijian))
        viewList.add(findViewById(R.id.newsest))
        viewList.add(findViewById(R.id.zuire))
        for(i in 0..2){
            viewList[i].setOnClickListener{
                for(item in viewList){
                    item.setTextColor(resources.getColor(R.color.grey))
                    var paint=item.paint
                    paint.isFakeBoldText=false
                }
                viewList[i].setTextColor(resources.getColor(R.color.black))
                var p=viewList[i].paint
                p.isFakeBoldText=true
            }
        }




        findViewById<Button>(R.id.fanhui).setOnClickListener(this)
        findViewById<TextView>(R.id.sends).setOnClickListener(this)

        registerForContextMenu(comment_list)


    }

//    private fun getPicture(drawable:Drawable): Any{
//            var  bd = drawable as BitmapDrawable
//            var bitmap = bd.getBitmap()
//            val os =ByteArrayOutputStream()
//            bitmap.compress(Bitmap.CompressFormat.PNG, 100, os)
//            return os.toByteArray()
//
//    }

//    override fun onRestart() {
//        super.onRestart()
//        val cursor = db.query(table,null,null,null,null,null,null)
//        adapter.switchCursor(cursor)
//    }
//
//    override fun onDestroy() {
//        unregisterForContextMenu(comment_list)
//        super.onDestroy()
//    }
//
//    override fun onCreateContextMenu(
//        menu: ContextMenu?,
//        v: View?,
//        menuInfo: ContextMenu.ContextMenuInfo?
//    ) {
//        menuInflater.inflate(R.menu.comment_menu,menu)
//        super.onCreateContextMenu(menu, v, menuInfo)
//    }
//
//    override fun onContextItemSelected(item: MenuItem): Boolean {
//        when(item.itemId){
//            R.id.cancel->{
//                db.delete(table,"id=?", arrayOf(adapter.selected))
//                val cursor = db.query(table,null,null,null,null,null,null)
//                adapter.switchCursor(cursor)
//            }
//        }
//
//        return super.onContextItemSelected(item)
//    }



    fun initCommentList(){
        commentList.add(
            com.yunxiangyue.Com(
                R.drawable.x,
                "锵锵",
                "10月21日",
                "有一种rep演唱会上King of my heart 的感觉"
            )
        )
        commentList.add(
            com.yunxiangyue.Com(
                R.drawable.x1,
                "寻找宇航员",
                "10月21日",
                "虽然是第一次听《Midnights》, 但我总觉得这张专辑在哪听过，感觉这张专辑的概念，风格，曲调，都好像有别的东西的影子，然后我仔细听了看了发现，原来这张专辑听起来就像《第65届格莱美年度专辑》。\n"
            )
        )
        commentList.add(
            com.yunxiangyue.Com(
                R.drawable.x2,
                "yawn~",
                "10月21日",
                "这首歌给我的感觉像是，曾经炽挚热诚如烈酒的鲜红色爱意如今褪色氧化成一块褐色伤疤，可就在我以为一切终结之时，深夜依然被暗红如血的思念的汹涌浪潮席卷。"
            )
        )
        commentList.add(
            com.yunxiangyue.Com(
                R.drawable.x3,
                "小森小可",
                "10月21日",
                "这个宏大的feeling，感觉被曲序害了，放后面绝对是秒杀级别的存在"
            )
        )
        commentList.add(
            com.yunxiangyue.Com(
                R.drawable.x4,
                "你的月亮是我的霉",
                "10月21日",
                "曾经鲜红的一切在分开以后都褪色成了褐红色，这首太牛了，谁懂……"
            )
        )
        commentList.add(
            com.yunxiangyue.Com(
                R.drawable.x5,
                "thyme--",
                "10月21日",
                "我怎么也没想到最后听得最多是这首"
            )
        )
        commentList.add(
            com.yunxiangyue.Com(
                R.drawable.x6,
                "moon-illusion",
                "10月21日",
                "滚石特约编辑Rob Sheffield评《Maroon》:“在“Cornelia Street”中，泰勒丝描绘了一段置景于纽约，令人无比心痛的恋情，而Maroon是这段故事的真实写照——炽热的情感让她久久不能忘怀。（P1）"
            )
        )
        commentList.add(
            com.yunxiangyue.Com(
                R.drawable.x7,
                "佩奇姐姐的账号",
                "10月21日",
                "其实我全专到现在还没听完，因为每次听到maroon就想切单曲循环了，谁懂"
            )
        )
        commentList.add(
            com.yunxiangyue.Com(
                R.drawable.x8,
                "账号已注销",
                "10月21日",
                "omg这首真的很midnight……适合晚上在高速公路开车时听，看远处星星点点的昏黄的路灯，尤其最后那几句啊啊啊啊我爱死霉的低音啊啊\n"
            )
        )
        commentList.add(
            com.yunxiangyue.Com(
                R.drawable.x9,
                "fallenalien",
                "10月21日",
                "超爱it was maroon 的下坠感，还有后面那段低语"
            )
        )
        commentList.add(
            com.yunxiangyue.Com(
                R.drawable.x10,
                "luaren",
                "10月21日",
                "一直在找一首最好听的想发朋友圈 可是每一首都好好听怎么办"
            )
        )
        commentList.add(
            com.yunxiangyue.Com(
                R.drawable.x11,
                "su大恶人",
                "10月21日",
                "今天的月亮是Maroon的！！！"
            )
        )
        commentList.add(
            com.yunxiangyue.Com(
                R.drawable.b2,
                "努力学习的话",
                "10月21日",
                "开头感觉像是泰勒从华丽的舞台走到幕后，回归到自己的模样"
            )
        )
        commentList.add(
            com.yunxiangyue.Com(
                R.drawable.bac3,
                "你的月亮是我的霉",
                "10月21日",
                "曾经鲜红的一切在分开以后都褪色成了褐红色，这首太牛了，谁懂……"
            )
        )
        commentList.add(
            com.yunxiangyue.Com(
                R.drawable.bac1,
                "thyme--",
                "10月21日",
                "我怎么也没想到最后听得最多是这首"
            )
        )
        commentList.add(
            com.yunxiangyue.Com(
                R.drawable.bass4,
                "moon-illusion",
                "10月21日",
                "滚石特约编辑Rob Sheffield评《Maroon》:“在“Cornelia Street”中，泰勒丝描绘了一段置景于纽约，令人无比心痛的恋情，而Maroon是这段故事的真实写照——炽热的情感让她久久不能忘怀。（P1）"
            )
        )
        commentList.add(
            com.yunxiangyue.Com(
                R.drawable.bac2,
                "佩奇姐姐的账号",
                "10月21日",
                "其实我全专到现在还没听完，因为每次听到maroon就想切单曲循环了，谁懂"
            )
        )
        commentList.add(
            com.yunxiangyue.Com(
                R.drawable.x8,
                "账号已注销",
                "10月21日",
                "omg这首真的很midnight……适合晚上在高速公路开车时听，看远处星星点点的昏黄的路灯，尤其最后那几句啊啊啊啊我爱死霉的低音啊啊\n"
            )
        )
        commentList.add(
            com.yunxiangyue.Com(
                R.drawable.background4,
                "fallenalien",
                "10月21日",
                "超爱it was maroon 的下坠感，还有后面那段低语"
            )
        )
        commentList.add(
            com.yunxiangyue.Com(
                R.drawable.bass2,
                "luaren",
                "10月21日",
                "一直在找一首最好听的想发朋友圈 可是每一首都好好听怎么办"
            )
        )
        commentList.add(
            com.yunxiangyue.Com(
                R.drawable.b7,
                "su大恶人",
                "10月21日",
                "今天的月亮是Maroon的！！！"
            )
        )
        commentList.add(
            com.yunxiangyue.Com(
                R.drawable.x12,
                "费都市",
                "10月21日",
                "老友记，第五季16集开头，莫妮卡和钱德勒在玩填字游戏，a six-letter word for red——maroon ！！！"
            )
        )
        commentList.add(
            com.yunxiangyue.Com(
                R.drawable.x13,
                "努力学习的话",
                "10月21日",
                "开头感觉像是泰勒从华丽的舞台走到幕后，回归到自己的模样"
            )
        )
        commentList.add(
            com.yunxiangyue.Com(
                R.drawable.x8,
                "账号已注销",
                "10月21日",
                "omg这首真的很midnight……适合晚上在高速公路开车时听，看远处星星点点的昏黄的路灯，尤其最后那几句啊啊啊啊我爱死霉的低音啊啊\n"
            )
        )
        commentList.add(
            com.yunxiangyue.Com(
                R.drawable.x9,
                "fallenalien",
                "10月21日",
                "超爱it was maroon 的下坠感，还有后面那段低语"
            )
        )
        commentList.add(
            com.yunxiangyue.Com(
                R.drawable.x10,
                "luaren",
                "10月21日",
                "一直在找一首最好听的想发朋友圈 可是每一首都好好听怎么办"
            )
        )
        commentList.add(
            com.yunxiangyue.Com(
                R.drawable.x11,
                "su大恶人",
                "10月21日",
                "今天的月亮是Maroon的！！！"
            )
        )
        commentList.add(
            com.yunxiangyue.Com(
                R.drawable.x12,
                "费都市",
                "10月21日",
                "老友记，第五季16集开头，莫妮卡和钱德勒在玩填字游戏，a six-letter word for red——maroon ！！！"
            )
        )

    }
//
//
//
//    override fun onDestroy() {
//        super.onDestroy()
//    }
//
    override fun onClick(p0: View?) {
        when (p0?.id) {
            R.id.fanhui -> {
                com.yunxiangyue.Comm.Companion.commentDB.close()
                finish()
            }
            R.id.sends ->{
                val bitmap= R.drawable.x8
//                val name= userName
                val name = "hexuan"
                val date="12月7日"
                val comments = findViewById<EditText>(R.id.comments)
                val comment=comments.text.toString()
                Log.d("ll","==========================================")
                Log.d("mm",name+" "+date+" "+comment)
                val values= ContentValues().apply {
                    put("bitmap",bitmap)
                    put("name",name)
                    put("date",date)
                    put("comment",comment)
                }
                if(values.get("comment")!=""){
                    com.yunxiangyue.Comm.Companion.commentDB.writableDatabase.insert(com.yunxiangyue.tab,null,values)
                    commentList.add(0, com.yunxiangyue.Com(bitmap, name, date, comment))
                    findViewById<RecyclerView>(R.id.comment_list).adapter?.notifyItemInserted(0)
                }
                comments.setText("")
            }

        }
    }
    override fun onCreateContextMenu(
        menu: ContextMenu?,
        v: View?,
        menuInfo: ContextMenu.ContextMenuInfo?
    ) {
        menuInflater.inflate(R.menu.comment_menu,menu)
        super.onCreateContextMenu(menu, v, menuInfo)
    }

    override fun onContextItemSelected(item: MenuItem): Boolean {
        when(item.itemId){
            R.id.cancel->{
//                var id=adapter.selected.toString()+1
                var cur= com.yunxiangyue.Comm.Companion.commentDB.readableDatabase.query(com.yunxiangyue.tab,null,null,null,null,null,null)

                Log.d("=","=======================================")
                Log.d("pp",adapter.selected.toString()+" "+cur.count)
                var cursor= com.yunxiangyue.Comm.Companion.commentDB.readableDatabase.query(com.yunxiangyue.tab,null,"id=?", arrayOf("4"),null,null,null,null)
                com.yunxiangyue.Comm.Companion.commentDB.writableDatabase.delete(com.yunxiangyue.tab,"id=?", arrayOf("4"))
                cursor.apply {
                    if(moveToFirst()){
                        var bitmap=getColumnIndexOrThrow("bitmap")
                        var name=getString(getColumnIndexOrThrow("name"))
                        var date=getString(getColumnIndexOrThrow("date"))
                        var comment=getString(getColumnIndexOrThrow("comment"))
                        Log.d("=","=======================================")
                        Log.d("jj",bitmap.toString()+" "+name+" "+date+" "+comment)
                        commentList.remove(com.yunxiangyue.Com(bitmap, name, date, comment))

                        val comment_list = findViewById<RecyclerView>(R.id.comment_list)
                        comment_list.adapter?.notifyItemRemoved(adapter.selected+1)
                        comment_list.adapter?.notifyDataSetChanged()
                    }
                    close()
                }
                cur= com.yunxiangyue.Comm.Companion.commentDB.readableDatabase.query(com.yunxiangyue.tab,null,null,null,null,null,null)
                if(cur.count==0){
                    com.yunxiangyue.Comm.Companion.commentDB.onCreate(com.yunxiangyue.Comm.Companion.commentDB.writableDatabase)
                    com.yunxiangyue.Comm.Companion.commentDB.onCreate(com.yunxiangyue.Comm.Companion.commentDB.readableDatabase)
                }
            }

        }

        return super.onContextItemSelected(item)
    }



}

